package com.lichuang.fruitvarietysm.goods.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lichuang.fruitvarietysm.goods.entity.Attribute;
import com.lichuang.fruitvarietysm.goods.entity.GoodsSkuAttr;
import com.lichuang.fruitvarietysm.goods.entity.Goodssku;
import com.lichuang.fruitvarietysm.goods.mapper.GoodsskuMapper;
import com.lichuang.fruitvarietysm.goods.service.impl.GoodsskuServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.*;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author shuaihang
 * @since 2019-06-05
 */
@RestController
@RequestMapping("//goodssku")
public class GoodsskuController {


    @Autowired
    GoodsskuServiceImpl goodsskuService;

    @Autowired
    GoodsskuMapper goodsskuMapper;


//    @RequestMapping("/sAttributeValue")
//    public Object sAttributeValue(@RequestParam("goods_id")Integer goods_id,@RequestParam("attribute_value")String attribute_value){
//        Goodssku goodssku=new Goodssku();
//        List<Goodssku> goodsskuList=new ArrayList<>();
//        List<Goodssku> list= goodsskuService.sAttributeValue(goods_id,attribute_value+"%");
//        List<GoodsSkuAttr> goodsSkuAttrList1=new ArrayList<>();
//        List<GoodsSkuAttr> goodsSkuAttrList2=new ArrayList<>();
//        List<GoodsSkuAttr> goodsSkuAttrList3=new ArrayList<>();
//        for (Goodssku lists:list) {
//            String s = lists.getAttributeValue();
//            String[] split1 = s.split(":");
//            int count = 0;
//            for (String s1 : split1) {
//                count++;
//                if (count == 2) {
//                    int id1 = Integer.parseInt(s1);
//                    GoodsSkuAttr goodsSkuAttr = goodsskuService.sAttName(id1);
//                    goodsSkuAttrList1.add(goodsSkuAttr);
//                }else if(count==3){
//                    int id2 = Integer.parseInt(s1);
//                    GoodsSkuAttr goodsSkuAttr2 = goodsskuService.sAttName(id2);
//                    goodsSkuAttrList2.add(goodsSkuAttr2);
//                }else if(count==4){
//                    int id3 = Integer.parseInt(s1);
//                    GoodsSkuAttr goodsSkuAttr3 = goodsskuService.sAttName(id3);
//                    goodsSkuAttrList3.add(goodsSkuAttr3);
//                }
//            }
//        }
//        return goodsSkuAttrList1;
//    }


    /**
     * 判断该商品是否存在sku
     * @param goods_id
     * @return
     */
    @RequestMapping("/getSkuCount")
    public int getSkuCount(@RequestParam("goods_id") Integer goods_id){
        int count=goodsskuService.sCountGoodSku(goods_id);
        return count;
    }

    /**
     * 根据skuId获取sku的全部信息
     * @param skuId
     * @return
     */
    @RequestMapping("/getSku")
    public Goodssku getSkuBySkuId(@RequestParam("skuId")Integer skuId){
//        Goodssku goodssku=new Goodssku();
//        goodssku.setSkuId(skuId);
//        QueryWrapper queryWrapper=new QueryWrapper(goodssku);
//        Goodssku getGoodSku= goodsskuMapper.selectOne(queryWrapper);
        Goodssku goodssku = goodsskuMapper.selectById(skuId);
        return goodssku;
    }

    /**
     * 通过skuId来拿到具体的属性和值
     * @param skuId
     * @return
     */
    @RequestMapping("/getSkuText")
    public List<List> getSkuText(Integer skuId){
        List<List> skuList = new ArrayList<>();
        // 通过skuId拿到一条sku
        Goodssku goodssku = goodsskuMapper.selectById(skuId);
        // 拿到这条sku的属性值
        String attributeValue = goodssku.getAttributeValue();
        // 以:分割属性值
        String[] attributeValues = attributeValue.split(":");
        // 循环处理属性值
        for (int i = 0; i < attributeValues.length; i++) {
            Integer attrId = Integer.valueOf(attributeValues[i]);
            String attrParentName = goodsskuMapper.selectAttrParentName(attrId);
            String attrName = goodsskuMapper.selectAttrName(attrId);
            List<String> attrList = new ArrayList<>();
            attrList.add(attrParentName);
            attrList.add(attrName);
            skuList.add(attrList);
        }
        return skuList;
    }

    /**
     * 更新sku的信息
     * @param goodssku
     */
    @RequestMapping("/updateSku")
    public void updateSku(Goodssku goodssku){
        goodsskuMapper.updateById(goodssku);
    }

}
